{"ID":0,"Name":"Подключение Yii к Joomla 3","Content":"\u003cp\u003eИногда бывает необходимо использовать удобные привычные инструменты в непривычной среде. Так, например, может понадобиться подключить Yii к компоненту Joomla 3\u003c/p\u003e\r\n\u003cp\u003eДля этого необходимо создать новый компонент. В конфигурационный файл Joomla добавляем инициализацию Yii: \u003c/p\u003e\r\n\u003cpre name=\"code\" class=\"php\"\u003e\r\n public static function YiiPath() {\r\n   return __DIR__ . '/components/com_{имя компонента}/yii';\r\n }\r\n\r\n public static function includeYii() {\r\n   $yiiPath = JConfig::YiiPath();\r\n   require_once $yiiPath . '/framework/yii.php';\r\n   $config = $yiiPath . '/get_conf.php';\r\n   Yii::registerAutoloader(array('JLoader', 'load'), true);\r\n   Yii::createWebApplication($config);\r\n }\r\n\u003c/pre\u003e\r\n\r\n\u003cp\u003eВ корне components в файле {названиеКомпонента}.php подключаем Yii:  \u003cp\u003e\r\n\u003cpre name=\"code\" class=\"php\"\u003e\r\nJConfig::includeYii();\r\n\u003c/pre\u003e\r\n\r\n\u003cp\u003eФайл для загрузки конфига get_conf.php\u003c/p\u003e\r\n\r\n\u003cpre name=\"code\" class=\"php\"\u003e\r\n$JoomlaConfig =\u0026 JFactory::getConfig();\r\nreturn array(\r\n    'basePath' =\u003e JConfig::YiiPath() . '/protected/',\r\n    'import' =\u003e array(\r\n        'application.models.*',\r\n        'application.components.*',\r\n    ),\r\n    'components' =\u003e array(\r\n        'db' =\u003e array(\r\n            'connectionString' =\u003e 'mysql:host=' . $JoomlaConfig-\u003eget('host') . ';dbname=' . $JoomlaConfig-\u003eget('db'),\r\n            'emulatePrepare' =\u003e true,\r\n            'username' =\u003e $JoomlaConfig-\u003eget('user'),\r\n            'password' =\u003e $JoomlaConfig-\u003eget('password'),\r\n            'charset' =\u003e 'utf8',\r\n\r\n        ),\r\n    )\r\n);\r\n\u003c/pre\u003e\r\n\r\n\r\n\u003cp\u003eОбщая структура компонета выглядит примерно так:\u003c/p\u003e\r\n\u003cimg src=\"/upload/articles/yii/jomyii.png\" alt=\"Yii as Joomla component\"  style=\"width:380px\" class=\"db\"/\u003e\r\n\u003cdiv class=\"cb\"\u003e\u003c/div\u003e\r\n\u003cp\u003eВ данном случае обработка модуля все равно будет выполняться Joomla, однако будут доступна Active Record функциональность и прочие плюшки к которым мы привыкли на Yii. Если интегрировать надо полностью заменив логику компонента cms, есть замечательная статья на эту тему на \u003ca href=\"https://www.yiiframework.com/wiki/137/include-yii-framework-in-a-joomla-module/\"\u003eофициальном сайте\u003c/a\u003e\u003c/p\u003e\r\n\u003cbr/\u003e","Tag":"php","Url":"/art/63/yii-connecting-to-joomla.aspx","ShortDescription":"","Alias":"","Visible":0,"Title":"Подключение Yii к Joomla 3","Key":"","Description":"Как подключить Yii как модуль(компонент) Joomla"}
